package cn.stylefeng.guns.sys.modular.system.service;

import cn.stylefeng.guns.base.pojo.page.LayuiPageInfo;
import cn.stylefeng.guns.sys.modular.system.entity.BtyGufenzhuanrang;
import cn.stylefeng.guns.sys.modular.system.model.params.BtyGufenzhuanrangParam;
import cn.stylefeng.guns.sys.modular.system.model.params.BtyGufenzhuanrangShepiParam;
import cn.stylefeng.guns.sys.modular.system.model.result.BtyGufenzhuanrangResult;
import cn.stylefeng.roses.core.reqres.response.ResponseData;
import com.baomidou.mybatisplus.extension.service.IService;
import org.springframework.web.bind.annotation.RequestParam;

import java.util.List;
import java.util.Map;

/**
 * <p>
 *  服务类
 * </p>
 *
 * @author yxc
 * @since 2021-05-31
 */
public interface BtyGufenzhuanrangService extends IService<BtyGufenzhuanrang> {

    /**
     * 新增
     *
     * @author yxc
     * @Date 2021-05-31
     */
    void add(BtyGufenzhuanrangParam param, String account);

    /**
     * 删除
     *
     * @author yxc
     * @Date 2021-05-31
     */
    void delete(BtyGufenzhuanrangParam param);

    /**
     * 更新
     *
     * @author yxc
     * @Date 2021-05-31
     */
    void update(BtyGufenzhuanrangParam param, String account);

    /**
     * 查询单条数据，Specification模式
     *
     * @author yxc
     * @Date 2021-05-31
     */
    BtyGufenzhuanrangResult findBySpec(BtyGufenzhuanrangParam param);

    /**
     * 查询列表，Specification模式
     *
     * @author yxc
     * @Date 2021-05-31
     */
    List<BtyGufenzhuanrangResult> findListBySpec(BtyGufenzhuanrangParam param);

    /**
     * 查询分页数据，Specification模式
     *
     * @author yxc
     * @Date 2021-05-31
     */
     LayuiPageInfo findPageBySpec(BtyGufenzhuanrangParam param);

    /**
     * 查询门店列表

     */
    List<Map<String, Object>> getDm();

    /**
     * 查询转让人列表

     */
    List<BtyGufenzhuanrangParam> getZr();

    /**
     * 查询受让人列表

     */
    List<BtyGufenzhuanrangParam> getSr();

    /**
     * 审核
     */
    int passOrRebut(Long id,Long fatherId,Integer status,String shopCode,String reason,Integer jiedian,String zrTel);

    /**
     * 股份转让列表
     * @param btyGufenzhuanrangParam
     * @return
     */
    Object gufenList(BtyGufenzhuanrangParam btyGufenzhuanrangParam, String account);


    List<Map> gufenById(Long id, String shopId);

    List<String> roleList(String account);

    /**
     * 审批接口
     * @param account
     */
    void approved(BtyGufenzhuanrangShepiParam btyGufenzhuanrangShepiParam, String account);

    /**
     * 股份转让列表（发起方）
     * @param btyGufenzhuanrangParam
     * @param account
     * @return
     */
    Object fqList(BtyGufenzhuanrangParam btyGufenzhuanrangParam, String account);

    /**
     * 根据姓名查询职位等信息
     * @param name
     * @return
     */
    List<Map> nameList(String name, String account);

    /**
     * 获取某个用户的待办数
     * @param account
     * @return
     * by zwf 20210715
     */
    long queryAllDaibanQty(String account);

    /**
     * 股份催办
     * @param btyGufenzhuanrangId
     * @param account
     */
    ResponseData gufenUrge(Long btyGufenzhuanrangId, String account);

    ResponseData countDown(Long btyGufenzhuanrangId, String account);

    ResponseData shChain(Long btyGufenzhuanrangId);

    ResponseData recall(Long btyGufenzhuanrangId);

    ResponseData yhkCheak(String yhk);

    ResponseData srCheak(String tel);

    List expList(BtyGufenzhuanrangParam btyGufenzhuanrangParam);
}
